package com.fitzone.web.controller.mini;

import com.baomidou.mybatisplus.extension.api.R;
import com.fitzone.common.result.Result;
import com.fitzone.model.dto.StoreMiniDTO;
import com.fitzone.model.vo.StoreMiniVO;
import com.fitzone.model.vo.StoreNameMiniVO;
import com.fitzone.model.vo.StoreVO;
import com.fitzone.web.service.StoreService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/mini/store")
@RequiredArgsConstructor
@Api(tags = "小程序-门店")
public class MiniStoreController {
    private final StoreService storeService;

    /**
     * 门店详情
     * @param
     * @return
     */
    @ApiOperation("小程序-门店详情")
    @GetMapping("/info/{id}")
    public Result<StoreVO> miniStoreDetail(@PathVariable Long id) {
        StoreVO storeVO = storeService.miniStoreDetail(id);
        return Result.ok(storeVO);
    }

    /**
     * 门店列表
     * @param storeMiniDTO
     * @return
     */
    @ApiOperation("小程序-门店列表")
    @GetMapping("/list")
    public Result<List<StoreMiniVO>> miniStoreList(StoreMiniDTO storeMiniDTO){
        List<StoreMiniVO> storeMiniVOS = storeService.miniStoreList(storeMiniDTO);
        return Result.ok(storeMiniVOS);
    }

    /**
     * 查询所有的城市
     * @return
     */
    @ApiOperation("查询所有的城市")
    @GetMapping("/city")
    public Result<List<StoreNameMiniVO>> miniStoreCity(){
        List<StoreNameMiniVO> storeNameMiniVOs = storeService.getCity();
        return Result.ok(storeNameMiniVOs);
    }

    /**
     * 查询每个城市的所有门店
     * @param city
     * @return
     */
    @ApiOperation("查询每个城市的所有门店")
    @GetMapping("/name")
    public Result<List<StoreMiniVO>> miniStoreName(@RequestParam String city){
        List<StoreMiniVO> storeMiniVOS = storeService.getCityStore(city);
        return Result.ok(storeMiniVOS);
    }
}
